The present invention relates to apparatus and methods for analyzing software systems.
Conventional sources of information for development and maintenance of computer system regarding its usability, include its end users, e.g. in beta sites, testing groups, and professional observers operating in usability labs. Collection of this usability information is typically performed manually and non-systematically and consequently suffers from defects such as disregarding a multiple of seemingly minor usability problems.
Prior art regarding the usability of computerized systems include those described in U.S. Pat. No. 4,500,964 to Nickle, U.S. Pat. No. 5,086,393 to Kerr et al, U.S. Pat. No. 5,220,658 to Kerr et al, U.S. Pat. No. 5,590,330 to Coskun and Tate, U.S. Pat. No. 5,600,789 to Parker et al., Published European Application 0 687 988 A2 (95303298.4) to ATandT, and Published PCT Application WO 95/16949 to Software Publishing Corporation.
Other prior art systems and technologies are described in the following U.S. Patents: U.S. Pat. No. 5,490,249 to Miller, U.S. Pat. No. 5,565,316 to Kershaw et al, U.S. Pat. No. 5,566,291 to Boulton et al, U.S. Pat. No. 5,321,611 to Clark and Bramlett, U.S. Pat. No. 5,513,994 to Kershaw and Romano, U.S. Pat. No. 5,433,615 to Clark, U.S. Pat. No. 5,437,544 to Clark et al, U.S. Pat. No. 5,590,057 to Fletcher and Ruuska, U.S. Pat. No. 5,581,684 to Dudzik et al, U.S. Pat. No. 5,627,958 to Potts and Vershel, U.S. Pat. No. 5,535,422 to Chiang et al, U.S. Pat. No. 5,481,667 to Bieniek et al, U.S. Pat. No. 5,465,358 to Blades and Kiel.
The disclosures of all publications mentioned in the specification and of the publications cited therein are hereby incorporated by reference.
The present invention seeks to provide improved apparatus and methods for analyzing usability problems in computerized systems.
There is thus provided, in accordance with a preferred embodiment of the present invention, computerized apparatus for identifying human difficulties in operating a computerized system, the apparatus including a human difficulty identifier operative to identify putative instances of an end user""s experience of difficulty in operating the computerized system, an operation recorder operative to store a record of the end user""s operations during each putative instance, an intention recorder operative to prompt an end user to indicate his intention during each the putative instance and to store the intention in association with the record of operations for the putative instance, and an output generator operative to generate an output indication of the record of operations and of the end user""s intention for each of the putative instances of experiences of difficulty.
Further in accordance with a preferred embodiment of the present invention, the intention is time-stamped and the record of operations is time-stamped, thereby to provide the association between the intention and the record of operations.
Also provided, in accordance with another preferred embodiment of the present invention, is computerized apparatus for identifying usability problems occurring in the course of operating a computerized system, the apparatus including a candidate usability problem identifier operative to generate records of occurrences of putative usability problems by monitoring an end user who is using the computerized system, a candidate usability problem database operative to store the records of occurrences of putative usability problems, and a database accessing unit operative to access the database and to derive therefrom information useful for resolving the usability problems.
Further in accordance with a preferred embodiment of the present invention, the database accessing unit includes a helpdesk access unit operative to access the database and to derive therefrom, on-line, information useful for operating a helpdesk.
Still further in accordance with a preferred embodiment of the present invention, the database accessing unit includes a developer""s access unit operative to access the database and to derive therefrom information useful for redesigning the computerized system.
Further in accordance with a preferred embodiment of the present invention, the intention recorder is operative to prompt the end user to explain his intention in his own words.
Also provided, in accordance with another preferred embodiment of the present invention, is a method for computerized identification of human difficulties in operating a computerized system, the method including identifying putative instances of an end user""s experience of difficulty in operating the computerized system, storing a record of the end user""s operations during each the putative instance, prompting the end user to indicate his intention during each the putative instance and to store the intention in association with the record of operations for the putative instance, and generating an output indication of the record of operations and of the end user""s intention for each of the putative instances of experiences of difficulty.
Also provided, in accordance with still another preferred embodiment of the present invention, is computerized apparatus for identifying human difficulties in operating a computerized system, the apparatus including a human difficulty identifier operative to identify putative instances of an end user""s experience of difficulty in operating the computerized system, an operation recorder operative to store a record of the end user""s operations during each the putative instance, and an output generator operative to generate an output indication of the record of operations for each of the putative instances of experiences of difficulty.
Also provided, in accordance with yet another preferred embodiment of the present invention, is a mode error troubleshooting system including a software system structure generator operative to prompt a developer to define a first plurality of tasks performed by the software system, to define a second plurality of modes in which the software system operates and to define, for at least one task, at least one inappropriate mode from among the second plurality of modes in which the task cannot be performed, and a troubleshooter operative to prompt an end user to select an individual one of the first plurality of tasks as his target task, to search among modes in which the software system is currently operating for inappropriate modes in which the target task cannot be performed and to alert the end user of any inappropriate modes found.
Additionally provided, in accordance with another preferred embodiment of the present invention, is a method for monitoring an end user""s terminology, the method including accepting a definition of a computer system""s terminology including a multiplicity of terms, repeating the following steps:
prompting an end user to select one of the multiplicity of terms, and, if the end user indicates that a desired intention is not associated with any of the multiplicity of terms, prompting the end user to give a name to the desired intention,
and displaying to a developer the incidence of each of the names given by the end user.
Additionally provided, in accordance with still another preferred embodiment of the present invention, is apparatus for identifying usability problems encountered when using developer-defined computerized systems each having a user interface, the apparatus including a user interface description elicitor operative to elicit from a developer of a developer-defined computerized system, and to record, a description of the user interface of the computerized system, a usability problem recorder operative to record usability problem data, and a usability problem occurrence analyzer using the description to analyze occurrences of usability problems recorded by the usability problem recorder.
Further in accordance with a preferred embodiment of the present invention, the usability problem recorder is operative to monitor an end user""s interaction with the computerized system in order to identify automatically detectable usability problems.
Still further in accordance with a preferred embodiment of the present invention, the usability problem recorder is also operative to request the end user""s confirmation of automatically detectable usability problems.
Additionally in accordance with a preferred embodiment of the present invention, the usability problem recorder is operative to accept a user-initiated report of a usability problem.
Still further in accordance with a preferred embodiment of the present invention, the user interface description elicitor is operative to store associations between components of a user interface of a computerized system and between functions of the computerized system.
Additionally in accordance with a preferred embodiment of the present invention, the user interface includes a plurality of input options, the apparatus also including an input option frequency recorder operative to accumulate input option frequency information including frequency of utilization for each of said plurality of input options.
Further in accordance with a preferred embodiment of the present invention, the apparatus also includes a user interface redeveloper operative to recommend a modification of at least a portion of the user interface based at least partly on the input option frequency information.
Still further in accordance with a preferred embodiment of the present invention, the apparatus also includes a user interface redeveloper operative to recommend a modification of at least a portion of the user interface based at least partly on the usability problem data.
Further in accordance with a preferred embodiment of the present invention, the usability problem data includes a record of each occurrence of a usability problem, expressed in terms of the description.
Still further in accordance with a preferred embodiment of the present invention, the usability problem recorder is operative, when recording the occurrence of a usability problem, to prompt the end user to indicate his intention when the usability problem occurred.
Additionally in accordance with a preferred embodiment of the present invention, the usability problem recorder is operative to accept from an end user an explanation of his intention phrased in his own words.
Further in accordance with a preferred embodiment of the present invention, the usability problem recorder is operative to prompt an end user to indicate his intention as a combination of at least one functions of a computerized system.
Further in accordance with a preferred embodiment of the present invention, the apparatus also includes a troubleshooter operative to troubleshoot by analyzing an end user""s indicated intention.
Also provided, in accordance with another preferred embodiment of the present invention, is apparatus for developing a computerized system operative to perform a multiplicity of system functions responsive to a corresponding multiplicity of user interface components respectively, the multiplicity of user interface components forming a user interface, the apparatus including a computerized system usage statistics accumulator operative to accumulate computerized statistics regarding usage of the computerized system, and a user interface modification aid operative to propose a modification of the user interface based on the computerized statistics.
Further in accordance with a preferred embodiment of the present invention, the computerized system usage statistics accumulator includes a user difficulty accumulator operative to accumulate computerized statistics regarding difficulties encountered by end users of the computerized system.
Still further in accordance with a preferred embodiment of the present invention, the computerized system usage statistics accumulator includes a user interface component counter operative to count the number of times each user interface component is activated by at least one end user of the computerized system.
Still further in accordance with a preferred embodiment of the present invention, if the statistics indicate that an individual user interface component causes substantial difficulty, the user interface modification aid is operative to propose that the user interface be modified such that the system function is not performed responsive to the individual user interface component.
Further in accordance with a preferred embodiment of the present invention, the user difficulty accumulator is operative to identify mode errors based on the computerized statistics regarding difficulties.
Preferably, modification of at least a portion of the user interface also takes into account other factors such as mnemonics to aid end users in remembering the correspondence between input options and system functions and such as hierarchical structure to aid end users by assigning related or similar input options to related or similar system functions.
Modification of at least a portion of the user interface typically includes a recommendation of a new user interface to replace the existing user interface, the new user interface being different from the existing user interface in at least one respect. Preferably, the recommendation takes into account not only the negative cost of those portions of the existing user interface which are replaced but also the negative cost of the alternatives (in the new user interface) to the replaced portions of the existing user interface. For example, if a particular error shortcut key combination corresponding to a particular action according to the existing user interface is removed, then when the user wishes to perform that action, s/he should use an alternative input option such as menu selection or a push button. The alternative input option also may have a negative cost and preferably the system is operative to estimate this cost and take this cost into account in developing recommendations.
The present invention will be understood and appreciated from the following detailed description, taken in conjunction with the drawings in which:
FIG. 1 is a simplified block diagram of computerized apparatus for identifying difficulties encountered by a human operator when operating a given computerized system;
FIGS. 2-12 are pictorial illustrations of screen displays generated by unit 20 of FIG. 1 according to a first embodiment of the present invention;
FIGS. 13-32 are pictorial illustrations of screen displays generated by unit 30 of FIG. 1 according to a first embodiment of the present invention;
FIGS. 33-36 are pictorial illustrations of screen displays generated by unit 32 of FIG. 1 according to a first embodiment of the present invention;
FIGS. 37-56 are pictorial illustrations of screen displays generated by unit 35 of FIG. 1 according to a first embodiment of the present invention;
FIGS. 57-68 are pictorial illustrations of screen displays generated by unit 90 of FIG. 1 according to a first embodiment of the present invention;
FIGS. 69-76 are pictorial illustrations of screen displays generated by unit 20 of FIG. 1 according to a second embodiment of the present invention;
FIGS. 77-84 are pictorial illustrations of screen displays generated by unit 30 of FIG. 1 according to a second embodiment of the present invention;
FIGS. 85-86 are pictorial illustrations of screen displays generated by unit 32 of FIG. 1 according to a second embodiment of the present invention;
FIGS. 87-106 are pictorial illustrations of screen displays generated by unit 35 of FIG. 1 according to a second embodiment of the present invention;
FIGS. 107-123 are pictorial illustrations of screen displays generated by unit 80 of FIG. 1 according to a second embodiment of the present invention;
FIG. 124 is a simplified functional block diagram of a preferred embodiment of the user action capture block 36 of FIG. 1, which is particularly suited for applications in which the computerized system is a Windows system, the embodiment of FIG. 124 also being useful in implementing units 20, 30 and 32 of FIG. 1;
FIG. 125 is a simplified flowchart illustration of a preferred mode of operation for unit 20 of FIG. 1;
FIG. 126 is a simplified flowchart illustration of a preferred mode of operation for unit 30 of FIG. 1;
FIG. 127 is a simplified flowchart illustration of a preferred implementation of the xe2x80x9cAssociate componentsxe2x80x9d process of FIG. 119;
FIG. 128 is a simplified flowchart illustration of a preferred implementation of the xe2x80x9cAssociate conditionsxe2x80x9d process of FIG. 119;
FIG. 129 is a simplified flowchart illustration of a preferred mode of operation for unit 32 of FIG. 1;
FIG. 130 is a simplified flowchart illustration of a preferred mode of operation for unit 36 of FIG. 1;
FIG. 131 is a simplified flowchart illustration of a preferred mode of operation for unit 40 of FIG. 1;
FIG. 132 is a simplified flowchart illustration of a preferred implementation of the xe2x80x9cPrompt user to report difficultyxe2x80x9d process of FIG. 124;
FIG. 133 is a simplified flowchart illustration of a preferred implementation of the xe2x80x9cEliciting user intentionxe2x80x9d process of FIG. 125;
FIG. 134 is a simplified flowchart illustration of a preferred mode of operation for unit 90 of FIG. 1;
FIG. 135 is a simplified flowchart illustration of a preferred mode of operation for unit 100 of FIG. 1;
FIG. 136 is a simplified diagram of relationships between tables within databases 34 and 70 of FIG. 1, according to a first implementation of the present invention, in which tables within database 34 are indicated in dotted lines and tables within database 70 are indicated in dashed lines; and
FIG. 137 is a simplified diagram of relationships between tables within databases 34 and 70 of FIG. 1, according to a second preferred implementation of the present invention, in which tables within database 34 are indicated in dotted lines and tables within database 70 are indicated in dashed lines.